import axios, { type AxiosResponse } from 'axios'
import { ElMessage, ElMessageBox } from 'element-plus'

//定义response对象的data接口
interface ResponseData<T> {
    code: number;
    data: T;
    message: string;
}

//配置一个axios实例
const service = axios.create({
    baseURL: '/mock',
    timeout: 100
})

//添加请求拦截器
service.interceptors.request.use((config) => {
    return config
})


//添加响应拦截器
service.interceptors.response.use(
    /* 约束一下response */
    async (response: AxiosResponse<ResponseData<any>>) => {
        // 对响应数据做点什么
        const res = response.data;
        return res.data
    },
    (error) => {
        // 对响应错误做点什么
        ElMessage.error('网络超时');
        return Promise.reject(error);
    }
);

export default service
